package com.yami.shop.bean.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 取币业务记录表
 * </p>
 *
 * @author author
 * @since 2023-05-18
 */
@Data
@TableName("tz_business_nft")
public class BusinessNft implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "主键")
    @TableId(type = IdType.AUTO)
    private Long businessNftId;

    @Schema(description = "业务类型 0：订单取币 1：开盲盒取币 2：合成取币  4 零元购 5 提现空投 9空投取币 10 mall4j订单 11 mall4j分享")
    private Integer businessType;

    @Schema(description = "商品名称")
    private String prodName;

    @Schema(description = "商品id")
    private String prodId;

    @Schema(description = "用户id")
    private String userId;

    @Schema(description = "取币个数")
    private Integer num;

    @Schema(description = "处理状态：0：待处理 1：失败 2：成功 3：部分成功")
    private Integer status;

    @Schema(description = "失败原因")
    private String reason;

    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "修改时间")
    private Date updateTime;

    @Schema(description = "处理业务ID（订单Id,空投id，合成id...）")
    private String outId;
    @Schema(description = "取币用户id")
    private String fromUserId;


    @Schema(description = "用户手机号码")
    @TableField(exist = false)
    private String userMobile;

    @Schema(description = "身份证号")
    @TableField(exist = false)
    private String idCard;

    @Schema(description = "用户昵称")
    @TableField(exist = false)
    private String nickName;

    @Schema(description = "身份证号")
    @TableField(exist = false)
    private String fromIdCard;
    @Schema(description = "同步增加减少")
    @TableField(exist = false)
    private String type;

    @Schema(description = "空投证书权益中权益关联的主商品ID --- 仅用与空投证书NFT时替换证书中数据")
    private String mainProdId;
}
